home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Anwendungen / CManager / Developer / Include / libraries / CManager.h
Encoding:
C/C++ Source or Header  |  2004-01-31  |  7.9 KB  |  387 lines

  1. #ifndef LIBRARIES_CMANAGER_H
  2. #define LIBRARIES_CMANAGER_H
  3.  
  4. #ifndef EXEC_PORTS_H
  5. #include <exec/ports.h>
  6. #endif
  7.  
  8. #ifndef DOS_DOS_H
  9. #include <dos/dos.h>
  10. #endif
  11.  
  12. #ifndef UTILITY_TAGITEM_H
  13. #include <utility/tagitem.h>
  14. #endif
  15.  
  16. /*
  17. **  $VER: CManager.h 25.3 (18.1.2004)
  18. **  Includes Release 25.3
  19. **
  20. **  CManager.h
  21. **  Global bookmarks manager shared library
  22. **
  23. **  Written by Simone Tellini and Alfonso Ranieri <alforan@tin.it>.
  24. **
  25. **  Released under the terms of the
  26. **  GNU Public Licence version 2
  27. */
  28.  
  29. /***********************************************************************/
  30. /*
  31. ** Library
  32. */
  33.  
  34. #define CMANAGERNAME "CManager.library"
  35. #define CMANAGERVER  25
  36.  
  37. /***********************************************************************/
  38. /*
  39. ** General CM entry
  40. */
  41.  
  42. struct CMEntry
  43. {
  44.     struct CMEntry *Succ;
  45.     struct CMEntry *Prec;
  46.     UBYTE          Type;
  47.     UBYTE          Flags;
  48. };
  49.  
  50. /* Type */
  51. enum
  52. {
  53.     CME_GROUP   = 0,
  54.     CME_USER    = 1,
  55.     CME_WWW     = 2,
  56.     CME_FTP     = 3,
  57.     CME_CHAT    = 4,
  58.     CME_TELNET  = 5,
  59.  
  60.     CME_LIST    = 253,
  61.     CME_SECTION = 255,
  62. };
  63.  
  64. /* Flags -  FLAGS BIT 7 IS RESERVED !!! */
  65. enum
  66. {
  67.     ENTRY_NEW = 1<<7,
  68. };
  69.  
  70. /* Some macros to cast pointers */
  71. #define CMENTRY(e)  ((struct CMEntry *)(e))
  72. #define CMGROUP(e)  ((struct CMGroup *)(e))
  73. #define CMUSER(e)   ((struct CMUser *)(e))
  74. #define CMWWW(e)    ((struct CMWWW *)(e))
  75. #define CMFTP(e)    ((struct CMFTP *)(e))
  76. #define CMCHAT(e)   ((struct CMChat *)(e))
  77. #define CMTELNET(e) ((struct CMTelnet *)(e))
  78.  
  79. /***********************************************************************/
  80. /*
  81. ** CM Group
  82. */
  83.  
  84. struct CMGroup
  85. {
  86.     struct CMGroup *Succ;
  87.     struct CMGroup *Prec;
  88.     UBYTE          Type;
  89.     UBYTE          Flags;
  90.  
  91.     char           Name[80];
  92.     struct MinList Entries;
  93.     struct MinList SubGroups;
  94. };
  95.  
  96. enum
  97. {
  98.     GRPF_BOLD = 1<<0,
  99.     GRPF_OPEN = 1<<1,
  100. };
  101.  
  102. /***********************************************************************/
  103. /*
  104. ** CM User
  105. */
  106.  
  107. struct CMUser
  108. {
  109.     struct CMUser  *Succ;
  110.     struct CMUser  *Prec;
  111.     UBYTE          Type;
  112.     UBYTE          Flags;
  113.  
  114.     char           Name[80];
  115.     char           Address[128];
  116.     char           City[128];
  117.     char           Country[80];
  118.     char           ZIP[20];
  119.     char           Comment[512];
  120.     char           Alias[40];
  121.     char           Phone[40];
  122.     char           Fax[40];
  123.     char           EMail[128];
  124.     char           WWW[256];
  125.     char           FTP[256];
  126.     char           LastName[80];
  127.     char           Mobile[40];
  128.     char           ICQ[20];
  129.     char           Company[40];
  130.     char           BAddress[128];
  131.     char           BCity[128];
  132.     char           BCountry[80];
  133.     char           BZIP[20];
  134.     char           BPhone[40];
  135.     char           BFax[40];
  136.     char           BEMail[128];
  137.     char           BJobTitle[20];
  138.     char           BDepartment[40];
  139.     char           BOffice[40];
  140.     ULONG          Reserved1;
  141.     char           PGPUserID[80];
  142.     char           BMobile[40];
  143.     char           ImageFile[256];
  144. };
  145.  
  146. enum
  147. {
  148.     USERFLAGS_Transparent = 1<<0,
  149. };
  150.  
  151. /***********************************************************************/
  152. /*
  153. ** CM WWW
  154. */
  155.  
  156. struct CMWWW
  157. {
  158.     struct CMWWW       *Succ;
  159.     struct CMWWW       *Prec;
  160.     UBYTE              Type;
  161.     UBYTE              Flags;
  162.  
  163.     char               Name[80];
  164.     char               WWW[256];
  165.     char               Comment[512];
  166.     char               WebMaster[80];
  167.     char               EMail[128];
  168.     struct DateStamp   LastModified;
  169.     struct DateStamp   LastVisited;
  170.     char               Alias[40];
  171. };
  172.  
  173. /***********************************************************************/
  174. /*
  175. ** CM FTP
  176. */
  177.  
  178. struct CMFTP
  179. {
  180.     struct CMFTP       *Succ;
  181.     struct CMFTP       *Prec;
  182.     UBYTE              Type;
  183.     UBYTE              Flags;
  184.  
  185.     char               Name[80];
  186.     char               FTP[256];
  187.     char               Comment[512];
  188.     char               Username[60];
  189.     char               Password[60];
  190.     ULONG              Port;
  191.     ULONG              Retries;
  192.     char               Local[256];
  193.     struct DateStamp   LastModified;
  194.     struct DateStamp   LastVisited;
  195.     char               Alias[40];
  196.     ULONG              ExtraFlags;
  197.     UWORD              WindowStyle;
  198.     char               EMail[128];
  199. };
  200.  
  201. /*
  202. ** Before V20.1 FTPF_SHOW_HIDDEN was in Flags as (1<<7) (CM bug),
  203. ** but (1<<7) is now strictly reserved.
  204. ** FTPF_SHOW_HIDDEN moved now to ExtraFlags as (1<<2).
  205. */
  206.  
  207. /* Flags */
  208. enum
  209. {
  210.     FTPF_ADVANCED    = 1<<0,
  211.     FTPF_QUIET       = 1<<1,
  212.     FTPF_COMPRESS    = 1<<2,
  213.     FTPF_ADT         = 1<<3,
  214.     FTPF_ANONYMOUS   = 1<<4,
  215.     FTPF_LOCAL       = 1<<5,
  216.     FTPF_PROXY       = 1<<6,
  217. };
  218.  
  219. /* ExtraFlags */
  220. enum
  221. {
  222.     FTPEF_SHOW_FTP_OUTPUT = 1<<0,
  223.     FTPEF_NOOPS           = 1<<1,
  224.     FTPEF_SHOW_HIDDEN     = 1<<2,
  225. };
  226.  
  227. /* WindowStyle */
  228. enum
  229. {
  230.     FTPWS_DUAL_LIST,
  231.     FTPWS_SINGLE_LIST,
  232. };
  233.  
  234. /***********************************************************************/
  235. /*
  236. ** CM Chat
  237. */
  238.  
  239. struct CMChat
  240. {
  241.     struct CMChat *Succ;
  242.     struct CMChat *Prec;
  243.     UBYTE         Type;
  244.     UBYTE         Flags;
  245.  
  246.     char          Channel[128];
  247.     char          Server[128];
  248.     char          Maintainer[80];
  249.     char          Nick[20];
  250.     char          WWW[256];
  251.     char          Comment[512];
  252.     char          Password[60];
  253.     char          EMail[128];
  254. };
  255.  
  256. /***********************************************************************/
  257. /*
  258. ** CM Telnet
  259. */
  260.  
  261. struct CMTelnet
  262. {
  263.     struct CMTelnet *Succ;
  264.     struct CMTelnet *Prec;
  265.     UBYTE           Type;
  266.     UBYTE           Flags;
  267.  
  268.     char            Host[80];
  269.     ULONG           Port;
  270.     char            Login[80];
  271.     char            Password[80];
  272.     char            Comment[256];
  273.     char            EMail[128];
  274. };
  275.  
  276. /* Flags */
  277. enum
  278. {
  279.     TNETF_SSH = 1<<0,
  280. };
  281.  
  282. /***********************************************************************/
  283. /*
  284. ** Struct used by CM_LoadData(), CM_SaveData(), CM_FreeData()
  285. */
  286.  
  287. struct CMDataOld
  288. {
  289.     struct CMGroup *Users;
  290.     struct CMGroup *WWWs;
  291.     struct CMGroup *FTPs;
  292.     struct CMGroup *Chat;
  293.     char           CurrentUser[60];
  294.     char           Path[256];
  295.     BOOL           FreeMe;
  296. };
  297.  
  298. struct CMData
  299. {
  300.     struct CMGroup *Users;
  301.     struct CMGroup *WWWs;
  302.     struct CMGroup *FTPs;
  303.     struct CMGroup *Chat;
  304.     char           CurrentUser[60];    /* set by CM_LoadCurrentUserData() */
  305.     char           Path[256];          /* set by CM_LoadCurrentUserData() */
  306.     BOOL           FreeMe;             /* if TRUE, CM_FreeData() frees the structure as well */
  307.     UWORD          Version;            /* version of this structure, you MUST fill it */
  308.     ULONG          SizeOf;             /* ***  *** */
  309.     struct CMGroup *Telnet;
  310. };
  311.  
  312. /* Version */
  313. enum
  314. {
  315.     CMD_CURRENT_VERSION = 13,
  316. };
  317.  
  318. /***********************************************************************/
  319. /*
  320. ** Flags for CM_GetEntry()
  321. */
  322.  
  323. enum
  324. {
  325.     CMGE_USER        = 1<<0,
  326.     CMGE_WWW         = 1<<1,
  327.     CMGE_FTP         = 1<<2,
  328.     CMGE_CHAT        = 1<<3,
  329.     CMGE_MULTISELECT = 1<<4,
  330.     CMGE_TELNET      = 1<<5,
  331. };
  332.  
  333. /***********************************************************************/
  334. /*
  335. ** Values for CM_GetOption()
  336. */
  337.  
  338. enum
  339. {
  340.     CMO_AvoidGenesis,
  341.     CMO_Version,
  342. };
  343.  
  344. /***********************************************************************/
  345. /*
  346. ** Interface to CManager application
  347. */
  348.  
  349. struct CMMessage
  350. {
  351.     struct Message Msg;
  352.     ULONG          Command;
  353.     ULONG          Data;
  354. };
  355.  
  356. enum
  357. {
  358.     CMC_QUIT,
  359.     CMC_GET_ENTRY,
  360.     CMC_PORT,
  361.     CMC_AREXX,
  362.     CMC_FAIL,
  363. };
  364.  
  365. /***********************************************************************/
  366. /*
  367. ** CM_StartCManagerA() tags
  368. **
  369. ** These are Simone Tellini's tags:
  370. ** Don't use them in other projects!
  371. */
  372.  
  373. #define LTAGBASE  ((int)0xF76B0010)
  374. #define CMLTAG(n) (LTAGBASE+(int)(n))
  375.  
  376. #define SCMA_File       CMLTAG(200)
  377. #define SCMA_PubScreen  CMLTAG(201)
  378. #define SCMA_HideUsers  CMLTAG(202)
  379. #define SCMA_HideWWW    CMLTAG(203)
  380. #define SCMA_HideFTP    CMLTAG(204)
  381. #define SCMA_HideChat   CMLTAG(205)
  382. #define SCMA_HideTelnet CMLTAG(206)
  383.  
  384. /***********************************************************************/
  385.  
  386. #endif /* LIBRARIES_CMANAGER_H */
  387.